package com.team.cloudsharing.dao.folder;

import java.util.List;

import com.team.cloudsharing.dao.user.UserDO;

public interface FolderDAO {
	public long insertFolder(FolderDO folderDO);

	public FolderDO findFolderById(long folderId);
	
	public FolderDO findFolderByFolderUrl(String folderUrl);

	public FolderDO findFolderByFolderNameAndFolderPathAndUserId(String folderName, String folderPath, UserDO userDO);

	public FolderDO findROOTFolderOfUser(UserDO userDO);

	public List<FolderDO> findAllFolderInFolder(FolderDO folderDO);
	
	public List<FolderDO> findAllFolderByFolderPathAndUserId(String folderPath, UserDO userDO, String trashStatus);

	public List<FolderDO> findAllFolderWithTrashStatusByUserId(UserDO userDO, String trashStatus);

	public long updateFolder(FolderDO folderDO);

	public boolean deleteFolder(long folderId);

	public List<String> getFolderNamesHasFoderIdParent(long folderIdParent);

	public long getFolderIdByFolderNameAndFolderIdParent(String folderName, long folderIdParent);

	public List<FolderDO> findFolderByFolderNameAndUserId(String folderName, UserDO userDO);

	public List<FolderDO> findAllFolderByUserId(UserDO userDO);
	
	public List<FolderDO> findAllFolderByFolderNamePatternInFolder(String folderNamePattern, FolderDO folderDO);

}
